[mfc] mainfrm中怎么访问doc中定义的变量

来源:百度知道 编辑:UC知道 时间:2024/05/31 15:47:00
就是在doc类中定义了一个变量如int a;
然后我要在mainfrm类中访问这个变量,比如a=1;
应该怎么办?
还有我知道CWinDoc* doc = AfxGetDoc(); 可以获得一个doc的指针
但这个指针好像只能用来访问doc中的变量(doc->),但是否可以修改doc中的变量呢?

使用CWinApp::GetFirstDocTemplatePosition、CWinApp::GetNextDocTemplate遍历所有的DocTemplate,然后使用CDocTemplate::GetFirstDocPosition与CDocTemplate::GetNextDoc遍历所有的DOC,就可以找到你所要的Doc了。

如果使用的是SDI,则第一个就是你所要的DOC。
代码如下:
CDocument* GetDoc()
{
CWinApp* pApp = AfxGetApp();
POSITION posDocTemp = pApp->GetFirstDocTemplatePosition();
CDocTemplate* pDocTemp = NULL;

while (posDocTemp)
{
pDocTemp = pApp->GetNextDocTemplate(posDocTemp);

POSITION posDoc = pDocTemp->GetFirstDocPosition();
while (posDoc)
{
CDocument* pDoc = pDocTemp->GetNextDoc(posDoc);
return pDoc;
}
}

return NULL;
}

CMyView *myView= (CMyView *)GetActiveView();//获取当前的view
CMyDoc *myDoc = myView->GetDocument();//获取Doc

没搞懂要问什么

如果 a是私有变量 就在doc中添加一个共有函数专门修改a用

如果是共有那直接改就行了吧

当然可以改了。什么